package ar.edu.utn.frgp.banco.service.impl;

import java.util.ArrayList;
import java.util.List;

import ar.edu.utn.frgp.banco.dao.PagoServiciosDao;
import ar.edu.utn.frgp.banco.dao.impl.PagoServiciosDaoImpl;

import ar.edu.utn.frgp.banco.domain.Cuenta;
import ar.edu.utn.frgp.banco.domain.PagoServicio;

import ar.edu.utn.frgp.banco.exceptions.DataAccessException;
import ar.edu.utn.frgp.banco.exceptions.ServiceException;
import ar.edu.utn.frgp.banco.service.RecursoServicePagoServicios;
import ar.edu.utn.frgp.banco.utils.ServiciosMostrar;

public class RecursoServicePagoServiciosImpl implements RecursoServicePagoServicios{
	
	private PagoServiciosDao pagoServiciosDao;
	
	
	
	public RecursoServicePagoServiciosImpl() { 
		setPagoServiciosDao(new PagoServiciosDaoImpl());
		
	}
	

	public PagoServiciosDao getPagoServicio() {
		return pagoServiciosDao;
	}
	
	public void setPagoServiciosDao(PagoServiciosDao pagoServicio) {
		this.pagoServiciosDao = pagoServicio;
	}

	
	
		

public void registrarPago(PagoServicio regpago) throws ServiceException {
		
	
	try {
		pagoServiciosDao.altaPagoServicio(regpago);
	} catch (DataAccessException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
		
				
	}



public List<PagoServicio> listarServiciosPagos() throws ServiceException {
	List<PagoServicio> serviciospagos = new ArrayList<PagoServicio>();
	try {
		
		serviciospagos = pagoServiciosDao.traerTodosLosPagos();
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return serviciospagos;
}


public List<ServiciosMostrar> listarServiciosPagosPorCuentaModificado(Cuenta cu)
		throws ServiceException {
	List<ServiciosMostrar> serviciospagos = new ArrayList<ServiciosMostrar>();
	try {
		
		serviciospagos = pagoServiciosDao.traerTodosLosPagosPorCuentaModificado(cu);
		
		
	} catch (DataAccessException e) {
		throw new ServiceException("Error de acceso a BD." + e.getMessage());
		}
	return serviciospagos;
}

	
}
